{% load static %}
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title> {% block title %} test_case_welbex {% endblock %}</title>
        <link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.css' %}">
        <script src="{% static "bootstrap/js/bootstrap.js" %}"></script>
        {% block css-js %}
        {% endblock %}
    </head>

    <body class="d-flex flex-column min-vh-100">

        <header class="p-3 text-bg-dark">
            {% include "header.html" %}
        </header>

    <main class="flex-shrink-0">
        <div  class="container">
            <nav id="sidebar">
                {% block sidebar %}
                {% endblock %}
            </nav>

            {% if messages %}
                {% for message in messages %}
                    {% if message.tags == 'error' %}
                        <div class="alert alert-danger text-center {{ message.tags }}" role="alert">
                    {% elif message.tags == 'success' %}
                        <div class="alert alert-success text-center {{ message.tags }}" role="alert">
                    {% else %}
                        <div class="alert alert-info text-center {{ message.tags }}" role="alert">
                    {% endif %}
                {{ message }}
                </div>
                {% endfor %}
            {% endif %}

            {% block content %}
                <div id="content">
                    <br>### #API: Сервис поиска ближайших машин для перевозки грузов.

                    <aside>
                        🔥 Необходимо разработать REST API сервиc для поиска ближайших машин к грузам.

                    </aside>

                    ◼Стек и требования:

                    <br>- **Python** (Django Rest Framework / FastAPI) на выбор.
                    <br>- **DB** - Стандартный PostgreSQL.
                    <br>- Приложение должно запускаться в docker-compose без дополнительных доработок.
                    <br>- Порт - 8000.
                    <br>- БД по умолчанию должна быть заполнена 20 машинами.
                    <br>- Груз обязательно должен содержать следующие характеристики:
                    <br>- локация pick-up;
                    <br>- локация delivery;
                    <br>- вес (1-1000);
                    <br>- описание.
                    <br>- Машина обязательно должна в себя включать следующие характеристики:
                    <br>- уникальный номер (цифра от 1000 до 9999 + случайная заглавная буква английского алфавита в конце, пример: "1234A", "2534B", "9999Z")
                    <br>- текущая локация;
                    <br>- грузоподъемность (1-1000).
                    <br>- Локация должна содержать в себе следующие характеристики:
                    <br>- город;
                    <br>- штат;
                    <br>- почтовый индекс (zip);
                    <br>- широта;
                    <br>- долгота.

                    <br>> *Список уникальных локаций представлен в прикрепленном csv файле "uszips.csv".*
                    >
                    >
                    <br>> [uszips.csv](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/73ce520f-5205-47d4-8169-2266c628f6a7/uszips.csv)
                    >
                    <br>> *Необходимо осуществить выгрузку списка в базу данных Postgres при запуске приложения.*
                    >
                    <br>- При создании машин по умолчанию локация каждой машины заполняется случайным образом;
                    <br>- Расчет и отображение расстояния осуществляется в милях;
                    <br>- Расчет расстояния должен осуществляться с помощью библиотеки geopy. help(geopy.distance). Маршруты не учитывать, использовать расстояние от точки до точки.

                    <aside><br>
                        <br>⭐ Задание разделено на 2 уровня сложности. Дедлайн по времени выполнения зависит от того, сколько уровней вы планируете выполнить.
                        <br>**1 уровень** - 3 рабочих дня.
                        <br>**2 уровень** - 4 рабочих дня.

                    </aside><br>

                    <br>### ◼Уровень 1

                    <br>Сервис должен поддерживать следующие базовые функции:

                    <br>- Создание нового груза (характеристики локаций pick-up, delivery определяются по введенному zip-коду);
                    <br>- Получение списка грузов (локации pick-up, delivery, количество ближайших машин до груза ( =< 450 миль));
                    <br>- Получение информации о конкретном грузе по ID (локации pick-up, delivery, вес, описание, список номеров ВСЕХ машин с расстоянием до выбранного груза);
                    <br>- Редактирование машины по ID (локация (определяется по введенному zip-коду));
                    <br>- Редактирование груза по ID (вес, описание);
                    <br>- Удаление груза по ID.<br>

                    <br>### ◼Уровень 2

                    <br>Все что в уровне 1 + дополнительные функции:

                    <br>- Фильтр списка грузов (вес, мили ближайших машин до грузов);
                    <br>- Автоматическое обновление локаций всех машин раз в 3 минуты (локация меняется на другую случайную).
                    <br>
                    <br>### ◼**Критерии оценки:**

                    <br>- Адекватность архитектуры приложения;
                    <br>- Оптимизация работы приложения.
                </div>
            {% endblock %}
        </div>
    </main>

    <footer>
        {% include "footer.html" %}
    </footer>
</body>
</html>